soucet CHAR poli na FB

Otázka od: bleak

25. 11. 2002 18:19

zdravim,
kdyz provedu:
SELECT (prijmeni || ',' || jmeno) as jmeno FROM table
tak ve vysledku pole jmeno vypada takto:

|Novak ,Petr |

jak se vyhnout tem mezeram, ktere tam jsou doplneny na velikost puvodnich
poli?
Existuje neco jako funkce TRIM na odstraneni mezer? V popis funkci pro
Interbase nic takoveho neni.

bleak

Odpovedá: Jan Sebelík

26. 11. 2002 7:19

> Odesílatel: bleak <bleak@mvesely.com>
> SELECT (prijmeni || ',' || jmeno) as jmeno FROM table
> |Novak ,Petr |
> jak se vyhnout tem mezeram, ktere tam jsou doplneny na velikost puvodnich

prijmeni, jmeno jsou asi typu CHAR(x), mely by byt VARCHAR(x)

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Odpovedá: Kalhous Zdenek

26. 11. 2002 8:25

On 25 Nov 2002 at 16:37, bleak wrote:
> SELECT (prijmeni || ',' || jmeno) as jmeno FROM table
> jak se vyhnout tem mezeram, ktere tam jsou doplneny na velikost
> puvodnich poli? Existuje neco jako funkce TRIM na odstraneni mezer?
Kdyz si nainstalujete UDF funkce dodavane jako priklad, tak tam
sice neni TRIM ale LTRIM a RTRIM. Chodi to a pro tento pripad
staci RTRIM.

Odpovedá: Pavel Cisar

26. 11. 2002 9:49

Haj hou!

On 25 Nov 2002 at 16:37, bleak wrote:

> kdyz provedu:
> SELECT (prijmeni || ',' || jmeno) as jmeno FROM table
> tak ve vysledku pole jmeno vypada takto:
>
> |Novak ,Petr |
>
> jak se vyhnout tem mezeram, ktere tam jsou doplneny na velikost puvodnich
> poli?
> Existuje neco jako funkce TRIM na odstraneni mezer? V popis funkci pro
> Interbase nic takoveho neni.

Funkce LTRIM a RTRIM jsou v knihovne ib_udf dodavane s Firebirdem. Skript
na definici UDF do databaze je v podadresari examples.

S pozdravem
Pavel Cisar
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase

Odpovedá: bleak

26. 11. 2002 11:34

zkusil jsem zmenit VAR na VARCHAR, ale ty mezery navic tam jsou porad.
bleak

----- Original Message -----
From: "Jan Sebelík" <honza@haes.cz>
prijmeni, jmeno jsou asi typu CHAR(x), mely by byt VARCHAR(x)


> Odesílatel: bleak <bleak@mvesely.com>
> SELECT (prijmeni || ',' || jmeno) as jmeno FROM table
> |Novak ,Petr |
> jak se vyhnout tem mezeram, ktere tam jsou doplneny na velikost puvodnich


Honza

Odpovedá: Petr Palicka

26. 11. 2002 12:39

> > kdyz provedu:
> > SELECT (prijmeni || ',' || jmeno) as jmeno FROM table
> > tak ve vysledku pole jmeno vypada takto:
> >
> > |Novak ,Petr |
> >
> > jak se vyhnout tem mezeram, ktere tam jsou doplneny na
> > velikost puvodnich poli?

no, predne bych pole podobneho razeni navrhoval jako VarChar.
pak nebudes mit podobne problemy. cili opet, jak na Honza
Sebelik neustale opakuje: "Analyza, Analyza, Analyza...".

je mi jasne, ze je to rada spise do budoucna a ted honem ti
nepomuze.

peca

Odpovedá: Pavol Kakacka

26. 11. 2002 12:32

From: "bleak" <bleak@mvesely.com>
> zkusil jsem zmenit VAR na VARCHAR, ale ty mezery navic tam jsou porad.
> bleak

Ako zmenil? Cim zmenil? Po zmenach napriklad IBExpertom je treba urobit (nie
vzdy ale vacsinou) backup/restore ak robis zmeny priamym zapiso do
systemovych tabuliek!
Pravdepodobne ale ani to nepomoze a budes musiet urobit jedoduchy update
(field=field), pretoze data uz boli zapisane do stlpca vcetne medzier.

Kakacka Pavol
KasiX@atlas.cz

Odpovedá: Petr Palicka

26. 11. 2002 12:51

> zkusil jsem zmenit VAR na VARCHAR, ale ty mezery navic tam jsou porad.
> bleak

predpokladam, ze to bylo CHAR na VARCHAR,
ale to ti ty mezery skutecne neodmaze.
musel by si potom udelat update tabulky do
sebe a nejakym vhodnym zpusobem
ty mezery odrezat nejakou UDF funkci.

proste bud to premeles jednou pro vzdy, nebo
budes vzdy pouzivat funcki pro orezani. ja
osobne bychto prevexloval jednou provzdy.

peca

Odpovedá: bleak

27. 11. 2002 9:14

normalne jsem zmenil datovy typ CHAR na VARCHAR pomoci klienta. Potom jsem
provedl

UPDATE table SET pole1=RTRIM(pole2)

a tim je to vyreseno. Diky vsem
bleak

----- Original Message -----
From: "Pavol Kakacka" <kakacka@proca.cz>
> From: "bleak" <bleak@mvesely.com>
> > zkusil jsem zmenit VAR na VARCHAR, ale ty mezery navic tam jsou porad.
> > bleak
>
> Ako zmenil? Cim zmenil? Po zmenach napriklad IBExpertom je treba urobit
(nie
> Pravdepodobne ale ani to nepomoze a budes musiet urobit jedoduchy update
> (field=field), pretoze data uz boli zapisane do stlpca vcetne medzier.